1. Technical Field
The present invention relates in general to methods and systems for improved communication between devices within a data processing system and in particular to methods and systems for processing data transmitted from a first device having a first clock rate to a second device having a second clock rate within a data processing system. Still more particularly, the present invention relates to methods and systems within a data processing system for inputting processed data into a device during particular periods of time during which metastability may occur and inputting data directly into a device during all other periods of time.
2. Description of the Related Art
In known data processing systems, data is typically transmitted via a data communication bus among computers and other devices within the data processing system. Each of these devices may operate at different clock rates. A sending device may operate at one clock rate while the receiving device may operate at a different clock rate. Data clocked by a sending device at the sending device's clock rate will appear to the receiving device to be asynchronous. Input latches are commonly used by the receiving device to receive this asynchronous data and synchronize the data to the receiving device's clock.
When devices operating at different clock rates are coupled together an unstable state, or metastable state, may occur. If data is received in a device by an input latch during the setup time of the input latch, the input latch may not select a state. This situation is commonly referred to as an unstable, or metastable state.
A common solution for avoiding metastability has been to double latch all data input into the receiving device. However, this solution introduces a delay for all input data whether or not the data may cause a metastable state.
It should therefore be apparent that a need exists for a method and system for processing input data received during those periods of time during which metastability may occur and for directly inputting data into a receiving device during all other periods of time.